1. Field of the Invention
The present invention relates, in general, to a method and system for use with data-processing systems having database utilizing programs. Specifically, the present invention relates to a method and system, for use with data-processing systems having database utilizing programs, which improve the efficiency of such programs.
2. Description of Related Art
A data-processing system is composed of one or more computers, peripheral equipment, and software that perform data-processing. A computer is a programmable functional unit that is controlled by internally stored programs and that uses common storage for all or a part of a program and also for all or part of the data necessary for the execution of the programs; executes user-written or user-designated programs; performs user-designated data manipulation, including arithmetic operations and logic operations; and that can execute programs that modify themselves during their execution. A digital computer operates on discrete data represented as strings of binary digits. Furthermore, a computer may be a stand-alone unit or may consist of several connected units. A program consists of a sequence of instructions suitable for processing by a computer, wherein such processing may include the use of an assembler, a compiler, an interpreter, or a translator to prepare the program for execution, as well as to execute it.
A database is a file composed of records, each containing fields together with the set of operations for searching, sorting, recombining, and other functions. A record is a data structure that is a collection of fields (elements), each with its own name and type. Unlike an array, whose elements all represent the same type of information and are accessed using an index, the elements of a record represent different types of information and are accessed by name. A record can be accessed as a collective unit of elements, or the data elements can be accessed individually. The field is a location in a record in which a particular type of data is stored. For example, ALL-EMPLOYEES-RECORD might contain fields to store the LAST-NAME, FIRST-NAME, TITLE, DEPARTMENT, TASK-COMPETENCIES, WORK-SCHEDULES, VACATION-DAYS-SCHEDULED, and so on. Individual fields are characterized by their maximum length and the type of data (for example, alphabetical, numeric, or financial) that can be placed in such fields. The facility for creating these specifications usually is contained in the data definition language (DDL). In relational database management systems, fields are called columns.
A relational database is a database or database management system that stores information and tables--rows and columns of data--and conducts searches by using data and specified columns of one table defined by additional data in another table. In a relational database, the rows of the table represent records (collections of information about separate items) and the columns represent fields (particular attributes of every record). In conducting searches, a relational database matches information from the field in one table with information in a corresponding field of another table to produce a third table that combines requested data from both tables. For example, if one table contains the fields EMPLOYEE-ID, LAST-NAME, FIRST-NAME, and TASK-COMPETENCIES (e.g., competencies with respect to certain operating systems, competencies with respect certain programming languages, or competencies with respect to certain network software packages, etc.), and another contains the fields DEPT, EMPLOYEE-ID, and WORK-SCHEDULE, a relational database can match the EMPLOYEE-ID fields in the two tables to find such information as the names of all employees available to perform a certain programming task with respect to a certain operating system on a certain date. In other words, a relational database uses matching values in two tables to relate information in one to information in the other.
A database utilizing program is a program which utilizes a database to perform a certain task or tasks by interacting with, and utilizing the capabilities of, one or more databases. Such programs generally accept data, translate that data into the format acceptable to the one or more databases in use, and thereafter interact with the one or more databases in use such that the desired task or tasks are accomplished. One example of database utilizing programs is a workforce planning program which performs task planning and scheduling via the use of a database to store and manipulate data relating to the competencies and work schedules of various professionals available to a task manager.
Often database utilizing programs are used to create different scenarios utilizing different input data sets and/or different task parameters. Returning to the example of the workforce planning program, such a program could be utilized to produce different workflow scenarios based upon different defined parameters, such as various proposed employee vacation schedules.
Continuing with the example of the workforce planning program, the input data sets and/or defined parameters for such a workforce planning program can be quite large (e.g., the tasks, employees, skill sets, and work schedules associated with constructing a jet airliner). The changes to the input data set for various scenarios typically amount to only a small percentage of the data in the entire input data set. Consequently, it is often desired to be able to reuse such input data sets and defined parameters as bases for different scenarios; that is, users of the workforce planning program often wish to be able to specify merely the differences between a new scenario, and a previous scenario, and thereafter utilize the workforce planning program without being required to re-input the entire previously-entered input data set.
Currently, such user desires are satisfied by saving the input data sets and/or sets of defined parameters to one or more data files. Thereafter, such saved input data sets and/or sets of defined parameters can be recalled and modified on an as needed basis.
While the current practice of saving input data sets and/or sets of defined parameters to one or more data files satisfies user desires, it (the current practice) does so in a very inefficient manner. Such inefficiency manifests itself on several levels. For example, saving such input data sets and/or sets of defined parameters to one or more data files is often inefficient and labor-intensive from a programming standpoint in that it requires a programmer to learn and use the protocols associated with one or more (possibly operating system specific) file systems in addition to learning to use the protocols and/or languages required to write the database utilizing program as well as the protocols and/or languages associated with the database utilized by the database utilizing program. Thus, the current practice of saving input data sets and/or sets of defined parameters to one or more data files effectively adds another layer of complexity to the programming aspect of a database utilizing program. Furthermore, it will be understood by those within the art that such additional layer of complexity further manifests itself in any debugging and/or systems analysis that may be necessary should a system failure occur, in that the system analyst will need to be proficient in the language and protocols utilized in the database utilizing program proper, the protocols and language utilized by the database itself, and the protocols and languages utilized by the file system. Another example of inefficiency relates to the increased time, over and above that ordinarily necessary to run the database utilizing program, necessary to access and interact with the one or more file systems. Yet another example of inefficiency relates to the fact that the current practice of saving input data sets and/or sets of defined parameters to one or more data files typically involves saving a complete input data set and/or set of defined parameters for each different scenario.
It is therefore apparent that a need exists for a method and system, to be employed with data processing systems having at least one database utilizing program, which will provide for the reuse of input data sets and/or defined parameters as bases for different database utilizing program scenarios, but which will provide such reuse without generating programming, systems analysis, or data processing resource usage inefficiencies.